package Class_05_15;

import java.io.File;
import java.util.Arrays;

public class Obtain {
    public static void main(String[] args) {
        //演示File类的五种常用获取方法：
        //1.getAbsolutePath():获取file对象对应的绝对路径
        File file = new File("D:\\code\\");
        String absolutePath = file.getAbsolutePath();
        System.out.println("输出file对象的绝对路径：" + absolutePath);
        /*
            Notice：
            ①这里在创建File对象时，使用的是绝对路径，
             所以我们这里输出的相对路径和绝对路径是一样的。
            ②只有创建的File对象是相对路径，输出的相对路径与绝对路径才会不同。
         */
        System.out.println("=================================");

        //2.getPath(): 获取file对象对应的相对路径
        String path = file.getPath();
        System.out.println("输出file对象的相对路径:" + path);
        System.out.println("=================================");

        //3.getName(): 获取file的文件名
        String fileName = file.getName();
        System.out.println("输出file对象的文件名:" + fileName);
        System.out.println("=================================");

        //4.getName(): 获取file的文件名
        String parentName = file.getParent();
        System.out.println("输出file对象的父级目录:" + parentName);
        System.out.println("=================================");

        //5.length(): 获取file文件的大小（以字节为单位进行计算）
        File file1 = new File("D:\\code\\1.txt");
        long size = file1.length();
        System.out.println("file1文件的大小 = " + size + " byte");
        System.out.println("=================================");

        //6.list(): 获取指定目录下所有文件(夹)的名称数组
        String[] fileNames = file.list();
        /*
            获取到的名称数组我们使用增强for来遍历。
            之后的File数组同理。
         */
        System.out.println("使用增强for遍历名称数组如下:");
        for (String fName : fileNames) {
            System.out.println(fName);
        }
        //此处也可以使用Arrays.toString() 方法来打印，如下:
        System.out.println();
        System.out.println("我们再用一下Arrays.toString()方法试试：");
        System.out.println(Arrays.toString(fileNames));
        System.out.println("=================================");

        //7.listFiles():  获取指定目录下所有文件(夹)的File类型数组
        File[] files = file.listFiles();
        System.out.println("使用增强for遍历File数组如下:");
        for (File filePlus : files) {
            System.out.println(filePlus);
        }

        System.out.println();
        System.out.println("我们再用一下Arrays.toString()方法试试：");
        System.out.println(Arrays.toString(files));
        System.out.println("=================================");
    }
}
